package com.wsd.jing.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wsd.jing.entity.RoleMenu;
import com.wsd.jing.request.CommonRequest;

import java.util.List;
import java.util.Map;

/**
 * All rights Reserved, Designed By www.tom.com
 *
 * @author tom
 * @version 1.0.0
 * @projectName: jing
 * @packageName: com.wsd.jing.service
 * @className: IRoleMenuService
 * @description: 角色菜单关联服务类
 * @createDate 2022-11-20 07:41
 * @copyright 2022-11-20 07:41 www.tom.com Inc. All rights reserved.
 */
public interface IRoleMenuService extends IService<RoleMenu> {

    /**
     * @param roleMenu:角色菜单关联
     * @return Boolean
     * @author tom
     * @description 新增角色菜单关联
     * @createDate 2022-11-20 07:41
     */
    Boolean insertRoleMenu(RoleMenu roleMenu);

    /**
     * @param roleMenu:角色菜单关联
     * @return Boolean
     * @author tom
     * @description 修改角色菜单关联
     * @createDate 2022-11-20 07:41
     */
    Boolean updateRoleMenu(RoleMenu roleMenu);

    /**
     * @param id:id
     * @return Boolean
     * @author tom
     * @description 删除角色菜单关联
     * @createDate 2022-11-20 07:41
     */
    Boolean deleteRoleMenu(Integer id);

    /**
     * @param ids:id
     * @return Boolean
     * @author tom
     * @description 批量删除角色菜单关联
     * @createDate 2022-11-20 07:41
     */
    Boolean deleteRoleMenus(String ids);

    /**
     * @param id:id
     * @return RoleMenu
     * @author tom
     * @description 查询角色菜单关联
     * @createDate 2022-11-20 07:41
     */
    RoleMenu getRoleMenu(Integer id);

    /**
     * @param commonRequest:排序参数
     * @param roleMenu:角色菜单关联
     * @return List<RoleMenu>
     * @author tom
     * @description 查询角色菜单关联列表
     * @createDate 2022-11-20 07:41
     */
    List<RoleMenu> listRoleMenus(CommonRequest commonRequest, RoleMenu roleMenu);

    /**
     * @param commonRequest:分页参数
     * @param roleMenu:角色菜单关联
     * @return Map<String, Object>
     * @author tom
     * @description 分页查询角色菜单关联列表
     * @createDate 2022-11-20 07:41
     */
    Map<String, Object> listPageRoleMenus(CommonRequest commonRequest, RoleMenu roleMenu);

    /**
     * @param roleId:角色ID
     * @param roleMenuList:角色菜单关联列表
     * @return Boolean
     * @author tom
     * @description 批量新增角色菜单关联
     * @createDate 2022/12/5 17:06
     */
    Boolean insertBatchRoleMenus(Integer roleId, List<RoleMenu> roleMenuList);
}
